package com.ejemplos.mavenproject1.services;

import com.ejemplos.mavenproject1.web.model.Task;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

@Component
public class TaskDao {
	// comentario que añade el dueño del repo
	// la brach fue creada, compruebo que no afecta al trunk
	// y sigo y sigo implementando cosas en mi branch, que por
	//		cierto tiene el nombre de ... mi-rama
	//		añado un método de consulta filtrado por descripción
	//		de tarea
        // efectivamente, el cambio realizado en la branch por el committer no se muestra
        //      aqui, en el trunk
	@PersistenceContext
	private EntityManager entityManager;

	@Transactional
	public void save(Task task) {
		entityManager.persist(task);
	}

	@SuppressWarnings("unchecked")
	public List<Task> list() {
		return entityManager.createQuery("select t from Task t")
				.getResultList();
	}
	
	@SuppressWarnings("unchecked")
	public List<Task> listPorDescripcion(String descripcion) {
		return entityManager
				.createQuery("select t from Task t where t.description like :desc")
				.setParameter("desc", descripcion).getResultList();
	}

}
